10 CLEAR: GOTO 3000
20 LINE XX+5,YY+2,XX+5,YY+7:DRAW XX+4,YY+3
30 GOTO 880
40 LINE XX+3,YY+3,XX+4,YY+2:LINE XX+5,YY+2,XX+6,YY+3
50 LINE XX+6,YY+4,XX+3,YY+7:LINE XX+3,YY+7,XX+6,YY+7
60 GOTO 880
70 LINE XX+3,YY+3,XX+4,YY+2:LINE XX+5,YY+2,XX+6,YY+3:LINE XX+5,YY+4,XX+6,YY+5
80 LINE XX+6,YY+6,XX+5,YY+7:LINE XX+3,YY+6,XX+4,YY+7
90 GOTO 880
100 LINE XX+5,YY+2,XX+2,YY+5:LINE XX+2,YY+5,XX+6,YY+5:LINE XX+5,YY+2,XX+5,YY+7
110 GOTO 880
120 LINE XX+3,YY+2,XX+6,YY+2:LINE XX+3,YY+3,XX+3,YY+4:LINE XX+4,YY+4,XX+5,YY+4
130 LINE XX+6,YY+5,XX+6,YY+6:LINE XX+5,YY+7,XX+4,YY+7:DRAW XX+3,YY+6
140 GOTO 880
150 LINE XX+4,YY+2,XX+5,YY+2:LINE XX+3,YY+3,XX+3,YY+6:LINE XX+4,YY+4,XX+5,YY+4
160 LINE XX+6,YY+5,XX+6,YY+6:LINE XX+4,YY+7,XX+5,YY+7
170 GOTO 880
172 DRAW XX+3,YY+3:LINE XX+3,YY+2,XX+6,YY+2:DRAW XX+6,YY+3:LINE XX+5,YY+4,XX+5,YY+7
174 GOTO 880
180 LINE XX+3,YY+2,XX+3,YY+7:LINE XX+3,YY+2,XX+6,YY+5:LINE XX+3,YY+5,XX+6,YY+5
190 DRAW XX+4,YY+4:RETURN
200 BOX XX+4,YY+3,XX+5,YY+6:BOX XX+3,YY+4,XX+6,YY+6
210 RETURN
220 LINE XX+2,YY+2,XX+7,YY+7:LINE XX+2,YY+7,XX+7,YY+2
230 RETURN
240 BOX XX+2,YY+2,XX+7,YY+7,1,K
250 RETURN
260 FOR I=2 TO 7 STEP 2
270 LINE XX+2,YY+I,XX+7,YY+I,2:LINE XX+I,YY+2,XX+I,YY+7,2
280 NEXT I
290 GOTO 880
310 GRAPH:DIM O(24,13):DIM X(198),Y(198)
320 LOCATE 3,6:PRINT "ң"
330 FOR N=1 TO M
340 X=INT(RND(1)*H+XI):Y=INT(RND(1)*9+4)
350 IF O(X,Y)<>1 THEN O(X,Y)=1 ELSE 340
360 IF N=INT(M/2) THEN CLS:LOCATE 3,8:PRINT "ǣ"
370 NEXT N
380 CLS:PRINT " Sweep";M;" 00:00";
390 BOX (XI-2)*7+2,15,(XA-1)*7,78,1,1: FOR X=1 TO 155 STEP 7
400 LINE X,15,X,78,0
410 NEXT X
420 FOR Y=15 TO 78 STEP 7
430 LINE 1,Y,155,Y,0
440 NEXT Y
490 X=XI:Y=4:XX=(X-2)*7:YY=14:K=2:GOSUB 240:P=M:PE=0
500 KK=ASC(INKEY$):IF KK=13 OR KK=25 OR KK=113 THEN KT=1:610 ELSE GOSUB 240: GOTO 620
520 T=INT(PEEK (1137)/2)
530 IF PEEK (199)>140 THEN KK=ASC(INKEY$):610
535 TT=INT(PEEK (1137)/2)
540 IF TT=T THEN 530
550 SE=SE+1:IF SE=60 AND MI=9 THEN LOCATE 1,15:PRINT "10:00":1000
560 IF SE>59 THEN MI=MI+1:SE=0:590
570 LOCATE 1,18:IF SE<10 THEN PRINT "0";SE;:T=TT:530
580 PRINT SE;:T=TT: GOTO 530
590 LOCATE 1,15:PRINT "0";MI;: GOTO 570
610 IF (KK>19 AND KK<24) OR KK=27 THEN GOSUB 240 ELSE 670
620 IF KK=20 THEN IF Y=4 THEN Y=12 ELSE Y=Y-1
625 IF KK=27 THEN 3170
630 IF KK=21 THEN IF Y=12 THEN Y=4 ELSE Y=Y+1
640 IF KK=22 THEN IF X=XA THEN X=XI ELSE X=X+1
650 IF KK=23 THEN IF X=XI THEN X=XA ELSE X=X-1
660 XX=(X-2)*7:YY=(Y-2)*7:GOSUB 240:IF KT=1 THEN 535 ELSE 500
670 IF KK=28 GOTO 10
680 IF (KK=13 OR KK=113) AND (O(X,Y)=1 OR O(X,Y)=0) THEN 770
690 IF KK=25 AND PE<PEE AND O(X,Y)<2 THEN 769
700 IF KK=32 OR KK=115 THEN 720
705 IF KK=19 OR KK=119 THEN 950
710 GOTO 535
720 IF O(X,Y)>1 AND O(X,Y)<10 THEN 535
730 XX=(X-2)*7:YY=(Y-2)*7:K=0:GOSUB 240
740 IF O(X,Y)=1 OR O(X,Y)=0 THEN O(X,Y)=O(X,Y)+10:K=0:GOSUB 240:GOSUB 180:P=P-1: GOTO 760
750 O(X,Y)=O(X,Y)-10:K=2:GOSUB 240:P=P+1
760 IF P>-1 THEN LOCATE 1,10:IF P<10 THEN PRINT "0";P; ELSE PRINT P;
765 K=2:GOSUB 240: GOTO 535
769 PE=PE+1:IF O(X,Y)=1 THEN 730
770 IF O(X,Y)=1 THEN 1000
780 XXX=X:YYY=Y:KN=0:ZK=0
790 GOSUB 830
800 IF KN=ZK THEN X=XXX:Y=YYY:XX=(X-2)*7:YY=(Y-2)*7:K=2:GOSUB 240: GOTO 535
810 KN=KN+1:GOSUB 910
820 GOTO 800
830 MS=0
840 FOR XS=X-1 TO X+1: FOR YS=Y-1 TO Y+1
850 IF O(XS,YS)=1 OR O(XS,YS)=11 THEN MS=MS+1
860 NEXT YS:NEXT XS:XX=(X-2)*7:YY=(Y-2)*7:K=0:GOSUB 240
870 ON MS+1 GOTO 260,20,40,70,100,120,150,172
880 IF MS=0 AND O(X,Y)=0 THEN ZK=ZK+1:X(ZK)=X:Y(ZK)=Y 
890 O(X,Y)=MS+2:W=W+1:IF W=H*9-M GOTO 1000
900 RETURN
910 FOR X=X(KN)-1 TO X(KN)+1: FOR Y=Y(KN)-1 TO Y(KN)+1
912 IF X<XI OR X>XA OR Y<4 OR Y>12 THEN 930
920 IF (X=X(KN) AND Y=Y(KN)) OR O(X,Y)>0 THEN 930
925 GOSUB 830
930 NEXT Y:NEXT X
940 RETURN
950 YE=0:EX=0: FOR XW=X-1 TO X+1: FOR YW=Y-1 TO Y+1
955 IF XW=X AND YW=Y THEN 970
960 IF O(XW,YW)=10 THEN EX=1:YE=YE+1
965 IF O(XW,YW)=11 THEN YE=YE+1
970 NEXT YW:NEXT XW:IF YE<>0 AND YE=O(X,Y)-2 THEN 975 ELSE 535
975 IF EX=1 THEN 1000 
980 K=2:GOSUB 240:XXX=X:YYY=Y:KN=0:ZK=1:X(1)=X:Y(1)=Y: GOTO 810
1000 LOCATE 1,2:IF W=H*9-M THEN PRINT "WIN! "; ELSE PRINT "LOST!";
2000 FOR X=XI TO XA: FOR Y=4 TO 12
2010 XX=(X-2)*7:YY=(Y-2)*7
2020 IF O(X,Y)=10 THEN K=0:GOSUB 240:GOSUB 220
2030 IF O(X,Y)=1 THEN K=0:GOSUB 240:IF W=H*9-M THEN GOSUB 180 ELSE GOSUB 200
2040 O(X,Y)=0:NEXT Y:NEXT X:IF W=H*9-M AND SW<4 THEN 3090 
2050 K=ASC(INKEY$)
2060 IF K=28 THEN 10
2070 IF K=27 THEN 3170
2080 GOTO 2050
3000 OPEN "hero" FOR RANDOM AS #1
3010 IF LOF(1)=0 THEN PRINT "TITLE.BASϷ":END
3020 CLOSE #1
3030 DIM NA$(3),TI(3)
3040 OPEN "hero" FOR INPUT AS #1
3050 FOR N=1 TO 3
3060 INPUT #1,NA$(N),TI(N):NEXT N
3070 INPUT #1,H,M,XA,XI,PEE,SW:CLOSE #1
3080 GOTO 310
3090 T=SE+MI*60:IF T>TI(SW) THEN 2050
3100 TEXT :PRINT "ϲӢ۰":TI(SW)=T
3110 PRINT "":INPUT NA$(SW)
3120 IF LEN(NA$(SW))=0 THEN BEEP:3100 ELSE NA$(SW)=LEFT$(NA$(SW),7)
3130 OPEN "hero" FOR OUTPUT AS #1
3140 FOR N=1 TO 3
3150 WRITE #1,NA$(N),TI(N):NEXT N
3160 WRITE #1,H,M,XA,XI,PEE,SW:CLOSE #1:GRAPH: GOTO 3190
3170 CLS:LOCATE 3,5:PRINT "ллԱϷƫ"
3180 PRINT SPC (9);"Secular":END
3190 LOCATE 3,6:PRINT "(Y/N)"
3200 IF INKEY$="n" THEN 3170 ELSE 10
